package structure

import "math"

// Shape 是形状的抽象
type Shape interface {
	Area() float64
}

// Rectangle 是长方形
type Rectangle struct {
	width  float64
	height float64
}

// Triangle 是三角形
type Triangle struct {
	width  float64
	height float64
}

// Circles 是长方形
type Circles struct {
	radius float64
}

// Perimeter 计算周长
func Perimeter(rectangle Rectangle) float64 {
	return 2 * (rectangle.width + rectangle.height)
}

// Area 长方形计算面积
func (r Rectangle) Area() float64 {
	return r.width * r.height
}

// Area 圆形计算面积
func (c Circles) Area() float64 {
	return math.Pi * c.radius * c.radius
}

// Area 三角形计算面积
func (t Triangle) Area() float64 {
	return t.height * t.width / 2
}
